
/*
'===============================================================================
'  Generated From - BLL_Component_Partial_Core.vbgen
'  
'  This object is partial class component representing a table in a database. It
'  contains core data access methods. Other partial classes should be used for 
'  implementing custom business logic. This class can be regenerated many times.
'  
'  Do not write custom business logic in this class as it will be overwritten 
'  next time the class is generated.
'
'  Version: 1.0
'  Date:	30/01/06
'  Summary: SelectOne, SelectAll, SelectAllWForeignKey, Insert, Update, Delete,
'  			DeleteAllWForeignKey, class for sorting.
'===============================================================================
*/
using System;
using System.ComponentModel;
using System.Data;
using System.Collections.Generic;

namespace PlacementManager
{
    [DataObjectAttribute]
	public partial class LinkDivisionCampusComponent
    {
        
		/// <summary>
        /// Default constructor.
        /// </summary>
		public LinkDivisionCampusComponent()
        {

        }
		
		/// <summary>
        /// Selects one record from the database table using the primary key.
        /// </summary>
        /// <returns>An object of a type representing a row in the database table.</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
		public LinkDivisionCampus SelectOne(int DivisionCampusId)
        {  
			PlacementManager.DAL.LinkDivisionCampus_DAL o = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			o.DivisionCampusId = DivisionCampusId;
			DataTable dt = o.SelectOne().Tables[0];
			
			if (dt.Rows.Count > 0)
            {
                DataRow row = dt.Rows[0];
				PlacementManager.LinkDivisionCampus LinkDivisionCampusToReturn = new PlacementManager.LinkDivisionCampus((int)row["DivisionCampusId"], (int)row["DivisionId"], (int)row["CampusId"], (bool)row["IsActive"], (DateTime)row["DateCreated"], (string)row["CreatedBy"], (DateTime)row["DateUpdated"], (string)row["UpdatedBy"]);
				return LinkDivisionCampusToReturn;
			}
			else
			{
				PlacementManager.LinkDivisionCampus LinkDivisionCampusToReturnEmpty = new PlacementManager.LinkDivisionCampus();
                return LinkDivisionCampusToReturnEmpty;
			}
        }
		
		/// <summary>
        /// Selects all records from the database table.
        /// </summary>
        /// <returns>A collection of objects of a type representing a row in the database table.</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
		public List<LinkDivisionCampus> SelectAll(string sortExpression)
        {
            List<LinkDivisionCampus> listLinkDivisionCampus = new List<LinkDivisionCampus>();
            PlacementManager.DAL.LinkDivisionCampus_DAL o = new PlacementManager.DAL.LinkDivisionCampus_DAL();

            DataSet ds = o.SelectAll();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                listLinkDivisionCampus.Add(new LinkDivisionCampus((int)row["DivisionCampusId"], (int)row["DivisionId"], (int)row["CampusId"], (bool)row["IsActive"], (DateTime)row["DateCreated"], (string)row["CreatedBy"], (DateTime)row["DateUpdated"], (string)row["UpdatedBy"]));
            }
			
			if (sortExpression == string.Empty)
            {
                sortExpression = "DateCreated desc";
            }

            listLinkDivisionCampus.Sort(new LinkDivisionCampusComparer(sortExpression));
            return listLinkDivisionCampus;
        }
	
		/// <summary>
        /// Selects all records from the database table based on a foreign key.
        /// </summary>
        /// <returns>A collection of objects of a type representing a row in the database table.</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
		public List<LinkDivisionCampus> SelectAllWCampusId(int CampusId, string sortExpression)
		{
			List<LinkDivisionCampus> listLinkDivisionCampus = new List<LinkDivisionCampus>();
			PlacementManager.DAL.LinkDivisionCampus_DAL o = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			o.CampusId = CampusId;
			DataSet ds = o.SelectAllWCampusId();
			foreach (DataRow row in ds.Tables[0].Rows)
			{
				listLinkDivisionCampus.Add(new LinkDivisionCampus((int)row["DivisionCampusId"], (int)row["DivisionId"], (int)row["CampusId"], (bool)row["IsActive"], (DateTime)row["DateCreated"], (string)row["CreatedBy"], (DateTime)row["DateUpdated"], (string)row["UpdatedBy"]));			
			}
			if (sortExpression == string.Empty)
			{
				sortExpression = "DateCreated desc";
			}
			listLinkDivisionCampus.Sort(new LinkDivisionCampusComparer(sortExpression));
			return listLinkDivisionCampus;
		}
		[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
		public List<LinkDivisionCampus> SelectAllWDivisionId(int DivisionId, string sortExpression)
		{
			List<LinkDivisionCampus> listLinkDivisionCampus = new List<LinkDivisionCampus>();
			PlacementManager.DAL.LinkDivisionCampus_DAL o = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			o.DivisionId = DivisionId;
			DataSet ds = o.SelectAllWDivisionId();
			foreach (DataRow row in ds.Tables[0].Rows)
			{
				listLinkDivisionCampus.Add(new LinkDivisionCampus((int)row["DivisionCampusId"], (int)row["DivisionId"], (int)row["CampusId"], (bool)row["IsActive"], (DateTime)row["DateCreated"], (string)row["CreatedBy"], (DateTime)row["DateUpdated"], (string)row["UpdatedBy"]));			
			}
			if (sortExpression == string.Empty)
			{
				sortExpression = "DateCreated desc";
			}
			listLinkDivisionCampus.Sort(new LinkDivisionCampusComparer(sortExpression));
			return listLinkDivisionCampus;
		}


		/// <summary>
        /// Inserts a new row into the datatable.
        /// </summary>
        /// <param name="o">An object of a datatype representing a row in the database table.</param>
        /// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
		public int Insert(LinkDivisionCampus o)
        {	
            PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			oLinkDivisionCampus.DivisionId = o.DivisionId;
			oLinkDivisionCampus.CampusId = o.CampusId;
			oLinkDivisionCampus.IsActive = o.IsActive;
			oLinkDivisionCampus.DateCreated = o.DateCreated;
			oLinkDivisionCampus.CreatedBy = o.CreatedBy;
			oLinkDivisionCampus.DateUpdated = o.DateUpdated;
			oLinkDivisionCampus.UpdatedBy = o.UpdatedBy;

            return oLinkDivisionCampus.Insert();
        }
		
		/// <summary>
        /// Inserts a new row into the datatable by passing parameters represneting each column.
        /// </summary>
        /// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
		public int Insert(int DivisionId, int CampusId, bool IsActive, DateTime DateCreated, string CreatedBy, DateTime DateUpdated, string UpdatedBy)
        {
            PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus = new PlacementManager.DAL.LinkDivisionCampus_DAL();

			oLinkDivisionCampus.DivisionId = DivisionId;
			oLinkDivisionCampus.CampusId = CampusId;
			oLinkDivisionCampus.IsActive = IsActive;
			oLinkDivisionCampus.DateCreated = DateCreated;
			oLinkDivisionCampus.CreatedBy = CreatedBy;
			oLinkDivisionCampus.DateUpdated = DateUpdated;
			oLinkDivisionCampus.UpdatedBy = UpdatedBy;

            return oLinkDivisionCampus.Insert();
        }

		/// <summary>
        /// Updates a row in the database table based on the primary key.
        /// </summary>
        /// <param name="o">An object of a datatype representing a row in the database table.</param>
        /// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Update, true)]
		public bool Update(LinkDivisionCampus o)
        {	
            PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			oLinkDivisionCampus.DivisionCampusId = o.DivisionCampusId;
			oLinkDivisionCampus.DivisionId = o.DivisionId;
			oLinkDivisionCampus.CampusId = o.CampusId;
			oLinkDivisionCampus.IsActive = o.IsActive;
			oLinkDivisionCampus.DateCreated = o.DateCreated;
			oLinkDivisionCampus.CreatedBy = o.CreatedBy;
			oLinkDivisionCampus.DateUpdated = o.DateUpdated;
			oLinkDivisionCampus.UpdatedBy = o.UpdatedBy;

            return oLinkDivisionCampus.Update();
        }
		
		/// <summary>
        /// Updates a row in the database table based on the primary key by passing the values of each column as parameters.
        /// </summary>
        /// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Update, true)]
		public bool Update(int DivisionCampusId, int DivisionId, int CampusId, bool IsActive, DateTime DateCreated, string CreatedBy, DateTime DateUpdated, string UpdatedBy)
        {
            PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus = new PlacementManager.DAL.LinkDivisionCampus_DAL();

			oLinkDivisionCampus.DivisionCampusId = DivisionCampusId;
			oLinkDivisionCampus.DivisionId = DivisionId;
			oLinkDivisionCampus.CampusId = CampusId;
			oLinkDivisionCampus.IsActive = IsActive;
			oLinkDivisionCampus.DateCreated = DateCreated;
			oLinkDivisionCampus.CreatedBy = CreatedBy;
			oLinkDivisionCampus.DateUpdated = DateUpdated;
			oLinkDivisionCampus.UpdatedBy = UpdatedBy;

            return oLinkDivisionCampus.Update();
        }
		
		/// <summary>
        /// Deletes one row in the database table.
        /// </summary>
        /// <param name="o">An object of a datatype representing a row in the database table.</param>
        /// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
		public bool Delete(LinkDivisionCampus o)
        {
            PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus_DAL = new PlacementManager.DAL.LinkDivisionCampus_DAL();
            oLinkDivisionCampus_DAL.DivisionCampusId = o.DivisionCampusId;
            return oLinkDivisionCampus_DAL.Delete();
        }
		
		/// <summary>
        /// Deletes one row in the database table by passing the primary key.
        /// </summary>
        /// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
		public bool Delete(int DivisionCampusId)
        {
            PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus_DAL = new PlacementManager.DAL.LinkDivisionCampus_DAL();
            oLinkDivisionCampus_DAL.DivisionCampusId = DivisionCampusId;
            return oLinkDivisionCampus_DAL.Delete();
        }
		
		/// <summary>
		/// Deletes all rows in a table based on a foreign key.
		/// </summary>
		/// <returns>Boolean</returns>
		[DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
		public bool DeleteAllWCampusId(int CampusId)
		{
			PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus_DAL = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			oLinkDivisionCampus_DAL.CampusId = CampusId;			
			return oLinkDivisionCampus_DAL.DeleteAllWCampusId();
		}
		[DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
		public bool DeleteAllWDivisionId(int DivisionId)
		{
			PlacementManager.DAL.LinkDivisionCampus_DAL oLinkDivisionCampus_DAL = new PlacementManager.DAL.LinkDivisionCampus_DAL();
			oLinkDivisionCampus_DAL.DivisionId = DivisionId;			
			return oLinkDivisionCampus_DAL.DeleteAllWDivisionId();
		}

	}
	
	public class LinkDivisionCampusComparer : IComparer<LinkDivisionCampus>
    {
        private string _sortColumn;
        private bool _reverse;

        public LinkDivisionCampusComparer(string sortExpression)
        {
            _reverse = sortExpression.ToLowerInvariant().EndsWith(" desc");
            if (_reverse)
            {
                _sortColumn = sortExpression.Substring(0, sortExpression.Length - 5);
            }
            else
            {
                _sortColumn = sortExpression;
            }
        }

        public int Compare(LinkDivisionCampus a, LinkDivisionCampus b)
        {
            int retVal = 0;
            switch (_sortColumn)
            {
				case "DivisionCampusId":
					retVal = String.Compare(a.DivisionCampusId.ToString(), b.DivisionCampusId.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "DivisionId":
					retVal = String.Compare(a.DivisionId.ToString(), b.DivisionId.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "CampusId":
					retVal = String.Compare(a.CampusId.ToString(), b.CampusId.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "IsActive":
					retVal = String.Compare(a.IsActive.ToString(), b.IsActive.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "DateCreated":
					retVal = String.Compare(a.DateCreated.ToString(), b.DateCreated.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "CreatedBy":
					retVal = String.Compare(a.CreatedBy.ToString(), b.CreatedBy.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "DateUpdated":
					retVal = String.Compare(a.DateUpdated.ToString(), b.DateUpdated.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;
				case "UpdatedBy":
					retVal = String.Compare(a.UpdatedBy.ToString(), b.UpdatedBy.ToString(), StringComparison.InvariantCultureIgnoreCase);
					break;

            }
            return (retVal * (_reverse ? -1 : 1));
        }
    }
}
